#include<bits/stdc++.h>
using namespace std;
const __int128 one = 1;
void write(__int128 val){
    if(val < 0){
        val = -val;
        cout<<'-';
    }
    if(val/10){
        write(val/10);
    }
    cout<<(int)(val%10);
}
__int128 f(__int128 a,__int128 b,__int128 c,__int128 n);
__int128 bf(__int128 a,__int128 b,__int128 c,__int128 n){
    //write(a);
    //cout<<' ';
    //write(b);
    //cout<<' ';
    //write(c);
    //cout<<' ';
    //write(n);
    //cout<<'\n';
    __int128 val = f(a,b,c,n);
    //write(val);
    //cout<<'\n';
    return val;
}
__int128 f(__int128 a,__int128 b,__int128 c,__int128 n){
    if(n <= 0){
        return 0;
    }
    if(a == 0){
        return (b/c)*n;
    }
    if((a*n + b)/c < 1){
        return 0;
    }
    if(max(a,b) >= c){
        return bf(a % c,b % c,c,n) + (a/c)*n*(n + 1)/2 + (b/c)*n;
    }else{
        return n*((a*n + b)/c) - bf(c,c - b - 1,a,(a*n + b)/c - 1) - (c - b - 1)/a;
    }
}
void solve(long long a,long long b,long long c,long long d){
    long long l = 1,r = (1ll*b*d/__gcd(b,d))*2;
    long long p = 1ll*b*d;
    while(l <= r){
        long long mid = (l + r)/2;
        __int128 v1 = bf(a,0,b,mid);
        __int128 v2 = bf(d,0,c,one*c*mid/d);
        __int128 val = one * mid*(one*c*mid/d) - v1 - v2;
        if(val > 0){
            p = mid;
            r = mid - 1;
        }else{
            l = mid + 1;
        }
    }
    long long q = (one*p*a)/b + 1;
    cout<<q<<'/'<<p<<'\n';
}
int main(){
    int a,b,c,d;
    while(cin>>a>>b>>c>>d){
        solve(a,b,c,d);
    }
}